package main

import (
	"fmt"
	"time"
)

func long_task(ch chan<- struct{}) {
	for i := 0; i < 10; i++ {
		fmt.Print("a")
		time.Sleep(1 * time.Second)
	}
	ch <- struct{}{}
}

// 主线程并不会等待所有的子线程退出
// 因此长时间执行的任务需要考虑清楚
// 需要使用一个 ch 来进行同步

func main() {
	ch := make(chan struct{})

	go long_task(ch)
	<-ch
}
